* Basic Setup I work on the static content of the site using [[http://mwolson.org/projects/EmacsMuse.html][Emacs Muse]]. My muse configuration is pretty long and available in my [[darcsweb::site-emacs/init.d/muse.el][site-emacs repository]]. The site itself exists in a [[darcsweb::unknownlamer.org][darcs repository]] which is a fork of the source repository I edit locally--the source repository contains muse/image files while the site repository contains html updates as a separate series of patches. This provides a very nice editing environment and makes publishing fairly easy--I push edits from my laptop to my workstation and then off to [[http://hcoop.net][HCoop]] with the html updates. Almost no effort is spent dealing with some dumb web interface or other pointless things making it much easier for me to just write things and toss them up onto the web. * Scripts There are a few scripts and templates in the [[darcsweb::site-support]] repository that I use to update the site. [[darcsweb::site-support/update.sh]] automates the process of sending patches off to the server via afs. ** Book Database [[Book List]] is autogenerated by [[darcsweb::site-support/books.lisp]] which reads a template and a small sexp *database* of book entries and spits out a muse file which is not kept under VC. This works well for me currently, but I intend to eventually *upgrade* this simple system to an [[http://common-lisp.net/project/elephant/][Elephant]] object database with a [[http://common-lisp.net/project/mcclim/][CLIM]] frontend for editing entries. I'll probably end up writing a minimal database manager for the sexp based system first. ** RSS Feed The site rss feed is generated by [[darcsweb::site-support/rss.lisp]]. It fetches the darcs xml changelog for interesting files and then spits out a tolerable feed with automagically generated links from =*.muse= to =*.html=. A [[darcsweb::site-support/update-rss-binary][dumped binary]] is run from a darcs hook on the main repository that handily updates the feed whenever I commit. apply posthook update-site-rss apply run-posthook Boring old Apache is used to serve up the generated feed. The feed stays updated when I update, and Apache deals with properly letting readers know when the file last changed and whatnot. * License All of the scripts used to generate the site are in the public domain unless otherwise mentioned in the files themselves. To use them anywhere else would require modification, but a few chunks of code could be generally useful for other things.